// TS中常用类型-引用类型-函数类型

// 函数类型
// 作用：给参数和返回值加上类型保护
// 语法：
//  1.分开指定：
//      function xxx(形参1： 类型， 形参2： 类型)：返回值类型 { ... }
//  2. 同时指定：
//      type Xxx = (形参1： 类型， 形参2： 类型) => 返回值类型
function add(a: number, b: number): number {
  return a + b;
}

// add() // undefined + undefiend
// add(1) // 1 + undefiend
// add(1, 2).toFixed(2)

// 2. 同时指定
type AddFn = (a: number, b: number) => number;

// 注意：💥同时指定 只能写在函数表达式身上
const add2: AddFn = (a, b) => {
  return a + b;
};

// 👎 不推荐的写法：表达式内联类型
// const add3: (a: number, b: number) => number = (a, b) => {
//   return a + b;
// };
